package com.ruoyi.bus.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.bus.domain.BusWay;
import com.ruoyi.bus.mapper.WxBusMapper;
import com.ruoyi.bus.domain.WxBus;
import com.ruoyi.bus.service.IWxBusService;

/**
 * 客车信息Service业务层处理
 * 
 * @author xie
 * @date 2024-12-23
 */
@Service
public class WxBusServiceImpl implements IWxBusService 
{
    @Autowired
    private WxBusMapper wxBusMapper;

    /**
     * 查询客车信息
     * 
     * @param busID 客车信息主键
     * @return 客车信息
     */
    @Override
    public WxBus selectWxBusByBusID(Long busID)
    {
        return wxBusMapper.selectWxBusByBusID(busID);
    }

    /**
     * 查询客车信息列表
     * 
     * @param wxBus 客车信息
     * @return 客车信息
     */
    @Override
    public List<WxBus> selectWxBusList(WxBus wxBus)
    {
        return wxBusMapper.selectWxBusList(wxBus);
    }

    /**
     * 新增客车信息
     * 
     * @param wxBus 客车信息
     * @return 结果
     */
    @Transactional
    @Override
    public int insertWxBus(WxBus wxBus)
    {
        int rows = wxBusMapper.insertWxBus(wxBus);
        insertBusWay(wxBus);
        return rows;
    }

    /**
     * 修改客车信息
     * 
     * @param wxBus 客车信息
     * @return 结果
     */
    @Transactional
    @Override
    public int updateWxBus(WxBus wxBus)
    {
        wxBusMapper.deleteBusWayByBusid(wxBus.getBusID());
        insertBusWay(wxBus);
        return wxBusMapper.updateWxBus(wxBus);
    }

    /**
     * 批量删除客车信息
     * 
     * @param busIDs 需要删除的客车信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteWxBusByBusIDs(Long[] busIDs)
    {
        wxBusMapper.deleteBusWayByBusids(busIDs);
        return wxBusMapper.deleteWxBusByBusIDs(busIDs);
    }

    /**
     * 删除客车信息信息
     * 
     * @param busID 客车信息主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteWxBusByBusID(Long busID)
    {
        wxBusMapper.deleteBusWayByBusid(busID);
        return wxBusMapper.deleteWxBusByBusID(busID);
    }

    /**
     * 新增${subTable.functionName}信息
     * 
     * @param wxBus 客车信息对象
     */
    public void insertBusWay(WxBus wxBus)
    {
        List<BusWay> busWayList = wxBus.getBusWayList();
        Long busID = wxBus.getBusID();
        if (StringUtils.isNotNull(busWayList))
        {
            List<BusWay> list = new ArrayList<BusWay>();
            for (BusWay busWay : busWayList)
            {
                busWay.setBusid(busID);
                list.add(busWay);
            }
            if (list.size() > 0)
            {
                wxBusMapper.batchBusWay(list);
            }
        }
    }
}
